package com.xiaotu.storage;

import java.util.Date;

import org.springframework.stereotype.Component;

import com.xiaotu.common.util.Constants;
import com.xiaotu.common.util.DataRedisKeyUtils;
import com.xiaotu.common.util.SepratorUtil;
import com.xiaotu.storage.converter.AConverter;
import com.xiaotu.storage.converter.ConverterFactory;
import com.xiaotu.storage.model.CacheDataModel;

import net.sf.json.JSONObject;

/***
 * 转储电影公司基础信息
 * @author Administrator
 *
 */
@Component("CompanyInfoSupplementStorageProcessor")
public class CompanyInfoSupplementStorageProcessor extends AHSetStorageProcessor{

	public static final String[] FIELD_ARR = new String[]{
			"id","companyid",
			"company_dataid","resourcesiteid",
			"companyname","companyengname",
			"companyproperty","companytypes",
			"works","workids",
			"parentcompanys","parentcompanyids",
			"childcompanys","childcompanyids",
			"address","introduction",
			"companypeoples","companypeoplesrole",
			"companypeopleids",
			"signactor","signactorids",
			"imageurl",
			"collecttime"
	};
	
	private static final String[] CONVERT_ARR = new String[]{
			AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,
			AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,
			AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,
			AConverter.STRING_CONVERT,AConverter.STRINGARRAY_CONVERT,
			AConverter.STRINGARRAY_CONVERT,AConverter.STRINGARRAY_CONVERT,
			AConverter.STRINGARRAY_CONVERT,AConverter.STRINGARRAY_CONVERT,
			AConverter.STRINGARRAY_CONVERT,AConverter.STRINGARRAY_CONVERT,
			AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,
			AConverter.STRINGARRAY_CONVERT,AConverter.STRINGARRAY_CONVERT,
			AConverter.STRINGARRAY_CONVERT,
			AConverter.STRINGARRAY_CONVERT,AConverter.STRINGARRAY_CONVERT,
			AConverter.STRING_CONVERT,
			AConverter.TIMESTAMP_CONVERT
			};
	
	private static final boolean[] THROW_ARR = new boolean[]{
			true ,true, true, true, true,
			true ,true, true, true, true,
			true ,true, true, true, true,
			true ,true, true, true, true,
			true ,true,true
			};
	
	
	@Override
	protected String getRedisKey(Date date) {
		return DataRedisKeyUtils.getKey(Constants.DataRedisKey.COMPANY_INFO_SUPPLEMENT_YYYYMMDD, date);
	}

	@Override
	public String process(JSONObject target, CacheDataModel cacheData, Date date) {
		return this.list2CSVLine(ConverterFactory.convert(target, FIELD_ARR, CONVERT_ARR,
                THROW_ARR),SepratorUtil.SEP_PIPE);
	}

	@Override
	public String getDataType() {
		return Constants.PageDataType.COMPANY_BASICINFO;
	}

	@Override
	public String getTaskType() {
		return Constants.PageDataType.BASICINFO;
	}
	
}
